﻿using System;
using System.Collections.Generic;
using System.Linq.Expressions;
using Sustainalytics.ClientDW.Entities;

namespace Sustainalytics.DataLayer
{
    /// <summary>
    /// Company search repository.
    /// </summary>
    public interface ICompaniesRepository
    {
        int GetCompanyCount(CompaniesListFilters filters);
                
        List<CorporateData> GetResearchGrid(CompaniesListFilters filters, int skip = 0, int take = 100, bool orderAscending = true, string orderBy = "CompanyNameLowercase");

        CorporateData GetCorporateDataById(Guid companyId);

        List<CorporateData> GetCompaniesById(List<Guid> ids);

        CorporateData GetCompanyById(Guid id, params Expression<Func<CorporateData, object>>[] parExpression);
    }
}
